iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 5
0
Software Development

python 自學系列 第 5

python day5 (string、dir、help)

  • 分享至 

  • xImage
  •  

string

string 是 immutable 的物件,用來存放字串裡每個字元的資料.可以用來表示 string 的符號有 '、"、"""、''' .

>>> name = 'Daniel Huang'
>>> print(name)
Daniel Huang
>>> textstring = """Hello
...  World ! """
>>> print(textstring)
Hello
 World !
>>> text = ''' Hello
... Python ~ '''
>>> print(text)
 Hello
Python ~

如果字串不想要有跳脫字元,想要印出所有符號的字串只要在前面加上 r 即可.

>>> slatsh_str = r'\* {}!@#``-_\n'
>>> print(slatsh_str)
\* {}!@#``-_\n

string format

在 str 物件裡利用 {} 搭配 format 可以把,format 後的參數帶到字串裡的 {} 位置.

>>> item_list = 'i1 : {}, i2 : {} , i3 : {}'.format('python' , 100 , 4.5)
>>> type(item_list)
<class 'str'>
>>> print(item_list)
i1 : python, i2 : 100 , i3 : 4.5

在 {} 裡加上參數的 index 就可以,根據 index 帶入字串.

>>> item_list = 'i1 : {2}, i2 : {0} , i3 : {1}'.format('python' , 100 , 4.5)
>>> print(item_list)
i1 : 4.5, i2 : python , i3 : 100

還可以將參數宣告變數,帶入 {} 的變數裡.

>>> item_list = 'i1 : {item2}, i2 : {item1} , i3 : {item3}'.format(item1='python' , item2=100 , item3=4.5)
>>> print(item_list)
i1 : 100, i2 : python , i3 : 4.5

下面的 format 代表把參數帶到 12 個字元裡的中間,並且左右用 * 補滿 12 的長度.

>>> 'passwd: {:*^12}'.format(888)
'passwd: ****888*****'

^ 是中間的 align field.
< 是左邊的 align field.
> 是右邊的 align field.

format 這 function 可以用 % 來替代.

>>> 'Number : %d , Hex : %x , Str : %s ' % (1,12,'Hello')
'Number : 1 , Hex : c , Str : Hello '

format 標準格式如下,各自詳細內容可以再細查.

:[[fill]align][sign][#][0][width][grouping_option][.precision][type]

在 python3.6 以上,如果字串前面加上 f 可以在 {} 裡面寫程式.

>>> num1 = 2
>>> num2 = 3
>>> f'sum is {num1 + num2}'
'sum is 5'

還是可以在 : 後面加上要 format 的格式.

>>> f'sum is {num1 / num2:=+3.2%}'
'sum is +66.67%'

dir

dir 這方法可以看到物件所有的屬性及函數.

>>> dir('Daniel')
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

可以看到 str 物件已經有定義了許多方法可以使用.

>>> 'daniel'.upper()
'DANIEL'
>>> 'a,b,c,d,e'.split(",")
['a', 'b', 'c', 'd', 'e']
>>> 'a,b,c,d,e'.rfind('c')
4

help

用 dir 可以看到很多方法,如果不知道怎麼使用的話,可以搭配 help 來查看方法如何使用.

>>> help(''.join)

Help on built-in function join:

join(iterable, /) method of builtins.str instance
    Concatenate any number of strings.

    The string whose method is called is inserted in between each given string.
    The result is returned as a new string.

    Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
(END)

可以看到 join 可以把 string 帶到 array 用該 string 分開成字串.

>>> '|'.join(['id','name','tel','addr'])
'id|name|tel|addr'

>>> '99'.join(['id','name','tel','addr'])
'id99name99tel99addr'

上一篇
python day4 (numbers)
下一篇
python day6 (substring、booleans、None)
系列文
python 自學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言